package com.adk.backend.service;

import com.adk.backend.entity.LxVndCheckDetails;
import com.adk.backend.entity.LxVndCheckList;
import com.adk.backend.entity.LxVndList;
import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

/**
 * SPSS（供应商对账）服务接口
 */
public interface SpssService {
    
    /**
     * 获取供应商列表（用于SPSS）
     */
    List<LxVndList> getVndListForSpss(Integer type);
    
    /**
     * 获取供应商对账列表
     */
    List<Map<String, Object>> getVndCheckList(Long vndId);
    
    /**
     * 获取对账详情列表
     */
    List<LxVndCheckDetails> getVndCheckDetails(Long vclId);
    
    /**
     * 获取对账列表信息（带供应商名称和月份）
     */
    Map<String, Object> getVndCheckListInfo(Long vclId);
    
    /**
     * 保存对账详情（新增或更新）
     */
    boolean saveVndCheckDetails(LxVndCheckDetails details, Integer userId);
    
    /**
     * 删除对账详情
     */
    boolean deleteVndCheckDetails(Long id);
    
    /**
     * 锁定/解锁对账详情
     */
    boolean lockVndCheckDetails(Long id, boolean lock);
    
    /**
     * 更新对账列表状态
     */
    boolean updateVndCheckListStatus(Long id, Integer status, BigDecimal paidAmount, Integer userId);
    
    /**
     * 创建对账月份
     */
    LxVndCheckList createVndCheckList(Long vndId, String fMonth, Integer userId);
    
    /**
     * 检查对账月份是否存在
     */
    boolean checkVndCheckListExists(Long vndId, String fMonth);
    
    /**
     * 导入Excel文件
     */
    Map<String, Object> importExcel(Long vclId, Integer type, org.springframework.web.multipart.MultipartFile file, Integer userId);
    
    /**
     * 获取供应商月度统计数据
     */
    List<Map<String, Object>> getVndMonthlyStatistics(Integer type, Integer year);
}
